/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.proyectos.ejb;

import com.proyectos.model.Hitos;
import com.proyectos.model.HitosMatricula;
import com.proyectos.model.Matriculas;
import java.util.Date;
import java.util.List;
import javax.ejb.Stateful;
import javax.persistence.Query;

/**
 *
 * @author Jose
 */
@Stateful
public class MatEjb extends com.proyectos.abstrac.BeanAbstract<Matriculas> implements MatEjbLocal {

    public MatEjb() {
        super(Matriculas.class);
    }

    @Override
    protected void validateNew(Matriculas entity) throws Exception {
        Query query = this.getEntityManager().createNamedQuery("Matriculas.findByUk");
        query.setParameter("nalumno",entity.getNalumno());
        query.setParameter("ncurso",entity.getNcurso());
        query.setParameter("ncarrera", entity.getNcarrera());
        List vlista = query.getResultList();
        if (!vlista.isEmpty())
        {
            throw new Exception("ya existe un director con este codigo");
        }
    }
    
    @Override
    public Matriculas marcarHito(Matriculas matricula,Hitos hito) throws Exception {
        try{
        HitosMatricula mat = new HitosMatricula();
        mat.setDfecha(new Date());
        mat.setNhito(hito);
        mat.setNmatricula(matricula);
        matricula.getVhitos().add(mat);
        this.getEntityManager().merge(matricula);
        return matricula;
        }catch(Exception e)
        {
            throw e;
        }
    }
}
